package fifth.代码块;

public class 静态代码块 {
    public static void main(String[] args) {
        //实例化对象
        new Demo1();
        new Demo1();
        new Demo1();
    }
}

class Demo1 {
    {// 定义构造块
        System.out.println("1.构造块");
    }
    static{
        //定义静态代码块
        System.out.println("2.静态代码块");
    }
    public Demo1(){
        //定义构造方法
        System.out.println("3.定义构造方法");
    }
}

/*
输出结果：
D:\WorkSpaces\Java\jdk-21\bin\java.exe "-javaagent:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\lib\idea_rt.jar=52877:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\WorkSpaces\JavaDevelopBase_start_329\out\production\JavaDevelopBase_start_329 fifth.代码块.静态代码块
2.静态代码块
1.构造块
3.定义构造方法
1.构造块
3.定义构造方法
1.构造块
3.定义构造方法


从结果来看：
静态代码块优先于主方法执行
而在类中定义的静态代码块会优先于构造块执行
而且不管有多少对象产生 静态代码块只执行一次
 */